/**
 * 工程名称:OMSJobExecutor
 * 文件名称:ISysRefundService.java
 * 所属包:cn.rkylin.oms.sysrefund.servcie
 * 创建时间:2017年9月21日下午2:55:13
 * 创建人:zhanghao
 */

package cn.rkylin.oms.sysrefund.servcie;

import cn.rkylin.oms.sysOrder.domain.SysOrder;
import cn.rkylin.oms.sysrefund.vo.SysRefundVO;

import java.util.List;
import java.util.Map;

/**
 * 类名:ISysRefundService <br/>
 * 作用: 平台退款单服务层. <br/>
 * 创建原因:	 定义平台退款单服务层接口. <br/>
 * 创建时间:     2017年9月21日 下午2:55:13 <br/>
 *
 * @author zhanghao
 * @version v1.0
 * @see
 * @since JDK 1.6
 */
public interface ISysRefundService {
    /**
     * downloadEcRefund:平台退款单进系统，按店铺. <br/>
     *
     * @param shopId 店铺ID
     * @param isFetching true：进系统前从平台下载退款单；false：只将已经下载的平台退款单进系统
     * @return
     * @throws Exception
     * @author zhanghao
     */
    public Object downloadEcRefund(String shopId,boolean isFetching) throws Exception;

    /**
     * updateEcRefund:平台退款单更新. <br/>
     *
     * @param shopId 店铺ID
     * @param isFetching true：更新前从平台下载退款单；false：只更新已经下载的平台退款单
     * @return
     * @throws Exception
     * @author zhanghao
     */
    public Object updateEcRefund(String shopId,boolean isFetching) throws Exception;

    /**
     * getSysRefundListByCondition:按条件获取系统退款单列表.
     *
     * @throws Exception
     */
    public List<SysRefundVO> getSysRefundListByCondition(SysRefundVO sysRefundVO) throws Exception;


    /**
     * downloadEcRefundByEcRefundCode:平台退款单进系统，按店铺和退款单号. <br/>
     *
     * @param shopId       店铺ID
     * @param ecRefundCode 平台退款单编码
     * @param isFetching true：进系统前从平台下载退款单；false：只将已经下载的平台退款单进系统
     * @return
     * @throws Exception
     * @author zhanghao
     */
    public Map<String, Object> downloadEcRefundByEcRefundCode(String shopId, String ecRefundCode,boolean isFetching) throws Exception;

    /**
     * downloadEcRefundByBuyerNick:根据店铺ID和客户ID执行退款单下载. <br/>
     *
     * @param shopId    店铺ID
     * @param buyerNick 客户ID(客户昵称)
     * @param isFetching true：进系统前从平台下载退款单；false：只将已经下载的平台退款单进系统
     * @throws Exception
     * @author zhanghao
     */
    public Map<String, Object> downloadEcRefundByBuyerNick(String shopId, String buyerNick,boolean isFetching) throws Exception;

    /**
     * @param order
     * @return
     * @throws Exception
     * @author zhanghao
     */
    Map<String, String> lockShipOrder(SysOrder order) throws Exception;

    /**
     * downloadEcRefundByOrderCode:根据平台交易号下载退款单. <br/>
     *
     * @author zhanghao
     * @param shopId
     * @param value
     * @param b
     * @return 
     */
    public Map<String, Object> downloadEcRefundByOrderCode(String shopId, String value, boolean b);

}

